Перейти к основному содержимому

Стрелялки

Родителям и детям

Стрелялки

Когда взрослые слышат слово «стрелялка», они часто представляют себе что-то шумное, быстрое и, возможно, даже «бесполезное» — просто герой бегает и стреляет, монстры падают, уровень заканчивается. Но если посмотреть чуть глубже, то окажется: стрелялки — одни из самых продуманных и сложных типов компьютерных игр. В них сочетаются физика, геометрия, тактика, искусство, программирование и даже психология.

В этой главе мы не будем учить, как выигрывать в конкретные игры. Мы разберём:
почему игры устроены именно так,
как менялись стрелялки за 50 лет,
где в них скрываются настоящие научные идеи — от расчёта траектории пули до предсказания поведения врага,
— и как даже веб-выстрелы Человека-паука — это тоже, в некотором смысле, стрельба (но без пороха!).

Это не инструкция для геймера. Это путеводитель по мышлению разработчика — как будто вы заглянули в мастерскую, где рождаются миры.


Что такое стрелялка? Давайте договоримся о словах

Слово «стрелялка» звучит просто — и это хорошо. Оно описывает суть: в игре есть персонаж (или машина), который выпускает снаряды в цель. Снаряд может быть:

  • пулей из пистолета,
  • лазерным лучом,
  • снежком, мячиком, волшебной стрелой,
  • даже словом (в играх-головоломках бывают «атаки через диалог»),
  • или… веб-нитью (да, об этом позже!).

Важно: в настоящей стрелялке снаряд летит по траектории, и игрок должен предугадать, куда целиться — потому что цель может двигаться, а снаряд летит не мгновенно.

Это отличает стрелялки от:

  • игр, где достаточно нажать кнопку, и противник сразу получает урон (например, «тык-тык» в RPG);
  • мини-игр, где стрельба — просто анимация без физики (например, «выстрел» в викторине — это метафора).

Стрелялка = цель + снаряд + время полёта + необходимость прицеливания.


А что такое шутер? Английское слово, русская идея

Слово шутер пришло из английского shooter — от глагола to shoot, то есть стрелять. Ничего мистического: шутер — это просто английское название стрелялки.

Но в игровой индустрии слово шутер стало означать уже стрелялку определённого вида: где вы управляете персонажем, который сам стреляет, чаще всего в реальном времени, и где стрельба — главный способ взаимодействия с миром.

Например, если в игре вы — танк, который стреляет по целям, — это танковый симулятор с элементами шутера.
Если вы — волшебник, который метает огненные шары, — это экшен-RPG, но в момент боя работает механика шутера.

То есть:
🔹 все шутеры — стрелялки,
🔹 но не все стрелялки называют шутерами — особенно если стрельба там второстепенна.


Шутеры от первого лица (FPS — First-Person Shooter)

Представьте: вы смотрите глазами героя.
Вы не видите своё тело — только руки с оружием, и всё, что перед вами. Это как смотреть на мир через камеру, прикреплённую ко лбу.

Такие игры называются от первого лица, потому что «я» — герой. Вы не наблюдаете за ним — вы становитесь им.

Примеры:

  • Doom (1993) — первая массовая игра такого типа; герой — безымянный солдат в аду (да, буквально);
  • Half-Life — история, где вы — учёный, попавший в катастрофу;
  • Portal — здесь вы стреляете порталами (дырами в пространстве!), но механика — всё равно шутер от первого лица.

Почему это сложно сделать?

Разработчикам нужно решить много задач:

  • Как показать, что герой дышит, устаёт, получает ранения — если его тела не видно?
  • Как не вызвать у игрока укачивание (кинетоз) при быстром повороте головы?
  • Как сделать, чтобы прицеливание чувствовалось точно, хотя в реальности мы прицеливаемся двумя глазами, а игра — одним «глазом» камеры?

Даже такая мелочь, как отдача (отброс оружия при выстреле), требует расчёта силы, анимации, звука и вибрации контроллера — и всего этого одновременно.


Шутеры от третьего лица (TPS — Third-Person Shooter)

Теперь представьте: вы видите героя со стороны — как будто за ним летит невидимая птица или дрон. Камера обычно расположена чуть выше и позади персонажа.

Это от третьего лица: вы — рассказчик, наблюдающий за героем.

Примеры:

  • Gears of War — герои укрываются за стенами, выскакивают, стреляют, снова прячутся;
  • The Division — спецагенты в реалистичном Нью-Йорке;
  • Fortnite — в режиме «Соло» вы видите себя со спины.

Преимущества такого вида:

  • Игрок видит всё тело героя: как он бежит, прыгает, прячется — это помогает в оценке расстояний и укрытий;
  • Удобнее делать анимации: удар ногой, перекат, прыжок с крыши — всё это видно и красиво;
  • Легче вводить сюжет: лицо героя может мимикрировать, реагировать на диалог.

Сложность для программистов:

  • Надо следить, чтобы камера не застревала в стенах, когда герой прижимается к углу;
  • Нужно рассчитывать, когда показывать оружие «поверх» тела, а когда — скрывать за укрытием;
  • В многопользовательских играх: если один игрок видит врага от третьего лица, а другой — от первого, как гарантировать честность? (Это целая наука — netcode и hit registration.)

А что насчёт других видов? Не всё — от первого или третьего лица!

Да, FPS и TPS — самые известные, но стрелялки бывают и другими. И это важно — потому что именно в этих формах родились многие идеи, которые потом перекочевали в крупные проекты.

Top-down («сверху вниз»)

Камера смотрит строго сверху — как будто вы с высоты птичьего полёта. Иногда чуть под углом («изометрия»), но суть та же: вы видите поле боя целиком.

Примеры:

  • Enter the Gungeon — подземелье, где каждая пуля видна, и уклоняться от них — искусство;
  • Hotline Miami — быстрые, жёсткие бои, где планирование хода решает всё.

Особенность: в таких играх особенно важна геометрия пространства. Например, если два врага стоят на одной линии — одним выстрелом можно убить обоих (это называется «penetration» или «пробитие»). Программисту нужно проверять, пересекает ли траектория пули несколько объектов.

Скролл-шутеры (Scrolling Shooters)

Это классика 80-х: экран движется сам (обычно вверх или вбок), а игрок управляет кораблём или персонажем, который стреляет навстречу волнам врагов.

Примеры:

  • 1942 (1984) — самолёт в небе, враги летят сверху;
  • R-Type — космический корабль с «прицепом»-оружием, который можно разворачивать.

Такие игры учили компьютеры заранее планировать волны: враги появляются не случайно — их паттерны («фигуры полёта») записаны в коде как скрипты. Это — ранняя форма искусственного интеллекта (хотя и очень простого).

Bullet hell («ад из пуль»)

Это поджанр скролл-шутеров, где враги стреляют сотнями снарядов одновременно, но так, что между ними остаются узкие проходы. Игрок должен не просто уворачиваться — нужно танцевать по экрану.

Примеры:

  • Touhou Project — японская серия про ведьм и божеств, где красота паттернов важна не меньше, чем сложность;
  • Ikaruga — пули чёрные и белые, и ваш корабль может впитывать пули своего цвета.

Здесь физика сочетается с дизайном: разработчики тщательно рисуют траектории, чтобы игра была сложной, но честной. Если вы погибли — значит, не заметили закономерность. Это тренирует внимание, память и пространственное мышление.

Платформеры-шутеры

Смешение жанров: вы прыгаете по платформам (как в Super Mario), но ещё и стреляете (как в Contra или Cuphead).

Особенность: баланс между точностью прыжка и точностью прицела. Например, в Cuphead герой может стрелять в любую сторону, даже в прыжке — и это требует от движка игры одновременной обработки:

  • гравитации,
  • столкновений с платформами,
  • анимации рук,
  • направления взгляда,
  • полёта пуль.

Это — отличный пример модульного программирования: физика, анимация, баллистика — всё работает как отдельные «кубики», но соединяется в плавный опыт.


А где же веб-шутеры у Человека-паука? И почему теперь всё — «Action»?

Отличный вопрос. Давайте разберём.

У Человека-паука есть веб-шутеры — устройства на запястьях, которые выпускают липкую нить. Это устройства для стрельбы, но они стреляют нитями. И эти нити:

  • имеют массу и вязкость,
  • растягиваются,
  • цепляются за поверхности,
  • позволяют качаться по городу — то есть превращают стрельбу в способ передвижения.

С технической точки зрения:
— веб-выстрел — это снаряд с физическими свойствами;
— его траектория рассчитывается в реальном времени;
— точка прикрепления — это цель;
— неудачный выстрел = падение героя.

Значит, да — механика шутера здесь присутствует, даже если нет урона. Просто выстрел служит для взаимодействия с миром.

Именно поэтому сегодня редко говорят «шутер» как отдельный жанр. Вместо этого — Action (экшен). Это более широкое понятие:
🔹 экшен = игра, где важны реакция, координация, физика и мгновенные решения.
В экшен могут входить:

  • рукопашные бои (God of War),
  • стрельба (Call of Duty),
  • лазание и качание (Spider-Man),
  • управление транспортом (Red Dead Redemption),
  • даже использование магии (Elden Ring).

Шутер — это подтип экшена, где основной инструмент взаимодействия — снаряд, запускаемый в цель.

Это как:

Квадрат — это прямоугольник, но не всякий прямоугольник — квадрат.
Шутер — это экшен, но не всякий экшен — шутер.


Родословная стрелялок

💡 Как читать схему:
Зелёный — общее понятие «стрелялка».
Сний — «шутеры» как устоявшийся жанр.
Оранжевый — современные экшен-игры, где стрельба — один из инструментов, но не единственный.


Как устроена стрельба внутри игры?

Пуля, лазер, граната — почему они летят по-разному?

Многие думают: «ну пуля — она летит прямо и быстро». Но даже в одной игре снаряды могут вести себя совершенно по-разному. И это не для красоты — это логика мира и баланс геймплея.

Вот три ключевых свойства, которые определяют поведение снаряда:

СвойствоЧто оно значит?Пример из жизниПример из игры
ТраекторияПо какой кривой летит снаряд?Бросок мяча — дуга. Стрельба из лука — тоже дуга. Из винтовки — почти прямая линия.Minecraft: стрела летит по параболе. — Call of Duty: пуля почти прямая (на короткой дистанции). — Worms: граната — дуга, как в боулинге.
СкоростьСколько времени снаряд тратит на путь до цели?Водяной пистолет (медленно) vs пневматика (быстро).Cuphead: пули врагов летят медленно — можно уклониться. — Quake: ракеты летят медленно, но их можно перехватить своей ракетой (да, так умеют!).
Эффект столкновенияЧто происходит при попадании?Пена — прилипает. Вода — брызги. Камень — разбивает.Half-Life 2: физ-пушка толкает объекты, но не убивает. — Overwatch: ультимейт Райнхардта — волна, отбрасывающая врагов. — Enter the Gungeon: пули могут отскакивать от стен.

Почему это важно для разработчика?

Потому что каждое свойство — это переменная в коде и условие в логике.
Например, для пули с дугой нужно:

  1. Знать начальную скорость и угол выстрела.
  2. Применять каждую миллисекунду гравитацию (например, y = y + vy; vy = vy + gravity).
  3. Проверять, не коснулась ли пуля земли — тогда остановить её.

Для лазера — проще:
— мгновенное появление линии от ствола до первого объекта,
— проверить, пересекает ли эта линия врага (это геометрия: отрезок и прямоугольник/круг).

А для отскакивающей пули — сложнее:
— при столкновении нужно отразить вектор скорости,
— уменьшить скорость (потеря энергии),
— ограничить число отскоков (иначе пуля будет летать вечно).

Это уже не «бах-бах» — это физическое моделирование в миниатюре.


Прицеливание: почему мы не целимся «прямо в голову»?

В реальности стрелок учитывает:

  • расстояние до цели,
  • её скорость,
  • ветер,
  • даже вращение Земли (в снайперских расчётах!).

В играх тоже есть «подсказки», но они спрятаны в интерфейсе и механике — чтобы не перегружать игрока, но сохранить реализм.

Что помогает прицеливаться?

ЭлементКак работаетЗачем нужен
Прицел (crosshair)Маленький крестик или точка в центре экрана. Иногда «расходится» при беге — показывает, что точность упала.Даёт опорную точку. Без него — как стрелять с закрытыми глазами.
Ретикул (reticle bloom)Прицел «растёт» при движении, стрельбе очередью. Чем больше — тем выше разброс.Учит думать: стоит ли бежать и стрелять? Или лучше остановиться?
Упреждение (lead targeting)В некоторых играх (например, космических симуляторах) появляется вторая метка — куда будет враг через 1 секунду.Помогает компенсировать время полёта снаряда. Особенно важно для медленных ракет.
Автоприцел (snap-to / aim assist)На консолях: если вы почти навели на врага — камера слегка «дотягивает» прицел.Компенсирует меньшую точность геймпада по сравнению с мышью.

🔍 Интересный факт: в Fortnite на ПК автоприцела почти нет, а на PlayStation он есть — иначе игроки с геймпадом проигрывали бы всегда. Это — пример адаптивного дизайна: игра подстраивается под устройство, а не заставляет всех быть одинаковыми.


Как «думает» враг, когда стреляет в вас?

Многие дети (и даже взрослые!) думают: «Компьютер всё знает. Он видит меня сквозь стены». На самом деле — нет. В 99% игр ИИ не читерит. Он использует те же данные, что и игрок:
— что видит его «глаз» (камера),
— слышит ли звук (выстрел, шаги),
— помнит ли, где вы были секунду назад.

Простая модель поведения врага-стрелка:

Каждую секунду враг проверяет:
1. Вижу ли я игрока? (луч от глаз врага до игрока — не пересекает ли стены?)
→ Да: перехожу в состояние «Атака».
→ Нет: перехожу в «Патрулирование».

В состоянии «Атака»:
2. Повернуть тело и оружие в сторону игрока (плавно, не мгновенно!).
3. Подождать 0.5–2 секунды (имитация «прицеливания»).
4. Выстрелить — с небольшой случайной ошибкой (±5°), чтобы не быть «роботом-снайпером».
5. Если игрок ушёл из поля зрения — искать 3 секунды, потом вернуться к патрулированию.

Это называется конечный автомат (finite state machine) — как будто у врага есть «режимы»: спит → слышит шум → ищет → видит → стреляет → теряет.

А как с bullet hell?

Там враги не «стреляют в игрока». Они выполняют заранее записанные паттерны — как ноты в музыке.

Пример паттерна для шарика-врага:

  1. Появляется вверху экрана.
  2. Летит по прямой 2 секунды.
  3. Одновременно выпускает 8 пуль по кругу (как солнце с лучами).
  4. Через 0.3 сек — ещё 8 пуль, но повёрнутых на 22.5°.
  5. Через 0.3 сек — опять, и так 5 раз → получается «цветок» из пуль.

Эти паттерны рисуют вручную — художник и геймдизайнер вместе подбирают, чтобы было сложно, но предсказуемо. Если вы пройдёте уровень 10 раз — вы запомните: «вот здесь — волна, потом пауза, потом спираль». Это — обучение через повторение, как в математике.


От лаборатории к миру — как стрелялки научили нас думать

Краткая история

1962: Spacewar! — первая интерактивная стрелялка

Создана студентами MIT на компьютере PDP-1 — огромной машине, весившей тонну и стоившей $120 000 (сегодня — ~$1.2 млн).
🔹 Два корабля летают вокруг звезды, стреляют торпедами.
🔹 Есть гравитация: если лететь близко к звезде — притягивает.
🔹 Управление — через специальные переключатели, не клавиатуру.

Почему это важно?
— Это не «развлечение» — это эксперимент по человеко-машинному взаимодействию.
— Программисты проверяли: может ли человек одновременно управлять поворотом, ускорением, стрельбой и учитывать гравитацию?
— Ответ: да — но только после тренировки. Родилось понятие кривой обучения.

💡 Интересно: исходный код Spacewar! был открыт. Любой мог его улучшать. Это — один из первых примеров open-source культуры в IT.

1970–1980-е: Аркады и ограничения как творчество

Компьютеры были слабыми. В Space Invaders (1978):
— Враги — 55 одинаковых спрайтов, но их движение создаёт иллюзию умного поведения: чем меньше врагов, тем быстрее они двигаются (процессору меньше работать — игра ускоряется сама).
— Звук — один генератор: «тук-тук-тук» учащается по мере приближения врагов → создаётся напряжение.

Ограничения порождали гениальность:
— В Asteroids (1979) пули и астероиды исчезают за краем экрана, но появляются с противоположной стороны — это применение топологии тора (поверхности бублика).
— В Galaga (1981) боссы захватывают игрока — и если выстрелишь вовремя, можно освободиться. Это — ранняя форма механики QTE (quick-time event).

1990-е: Революция 3D и рождение FPS

Doom (1993) не была первой игрой от первого лица — но первой, которая:
— работала на обычных ПК (не на специальных станциях),
— поддерживала многопользовательскую игру через сеть (впервые — Deathmatch),
— имела WAD-файлы — внешние архивы с картами, звуками, текстурами → началась эра моддинга.

Quake (1996) добавил:
— настоящую 3D-графику (не «2.5D», как в Doom),
движок как платформу: любой мог сделать свою игру на его основе (Counter-Strike, Team Fortress — начинались как моды),
client-server архитектуру, без которой невозможны современные онлайн-шутеры.

2000–2020-е: Гибридизация и «невидимые» шутеры

Сегодня редко встретишь «чистый» шутер. Вместо этого — слои механик:

  • Destiny 2: шутер + RPG (прокачка, редкие предметы) + MMO (рейды на 6 человек);
  • Hades: roguelike + платформер + шутер (Загребной стреляет трезубцем в такт ударам);
  • Splatoon: шутер, где «пули» — чернила, и цель — закрасить территорию.

Вывод:
Стрелялки — не застыли. Они эволюционировали, вбирая идеи из других жанров, потому что механика стрельбы — универсальный способ взаимодействия с виртуальным пространством.


Этический дизайн: почему важно, во что стрелять

Многие считают: «игра — это фантазия, тут всё можно». Но исследования (например, от Оксфордского интернет-института, 2021) показывают:
🔹 Игроки запоминают механику.
🔹 Повторяющееся действие формирует автоматизм — даже если он виртуальный.

Поэтому разработчики всё чаще задают себе вопросы:

ВопросПример решенияЭффект
Можно ли избежать насилия, сохранив стрельбу?Splatoon: вместо крови — чернила. Враги «отключаются», а не «умирают».Сохраняется динамика игры, но снижается тревожность. Подходит для младших игроков.
Как сделать поражение информативным, а не унижающим?Celeste: при падении герой возвращается к последней точке. Никакого «Game Over».Игрок не боится ошибаться — учится смелее.
Можно ли превратить врага в союзника?Half-Life: Alyx: роботы-враги могут быть отключены, а потом перепрограммированы для помощи.Меняется отношение: враг — задача.
Как показать последствия?This War of Mine: если вы стреляете в мирного жителя за еду — потом персонаж впадает в депрессию, перестаёт готовить.Даёт понять: выбор имеет цену — даже в игре.

⚠️ Важно: это не «цензура». Это дизайн с намерением (intentional Проектирование).
Как инженер решает: мост должен выдержать ветер, так и геймдизайнер решает: игра должна формировать осознанное взаимодействие.

А что с «веб-шутерами»? Этический пример

В Marvel’s Spider-Man (2018) Человек-паук никогда не убивает. Даже в перестрелках:
— его веб-выстрелы обездвиживают,
— он отбивает пули щитом или уклоняется,
— финальный удар — нейтрализация, не казнь.

Это — уважение к характеру героя. Если бы он убивал, это нарушило бы внутреннюю логику мира, и игрок бы почувствовал «диссонанс».


Кем можно стать, если увлечён стрелялками?

Многие дети мечтают «делать игры». Но профессий — десятки. Вот те, что прямо связаны с механикой стрельбы:

ПрофессияЧто делаетКакие навыки нужныГде учится/начинать
Геймдизайнер (game designer)Придумывает, как работает стрельба: скорость, урон, баланс, «чувство выстрела» (ощущение отдачи, звука, визуала).Анализ игр, прототипирование в Figma/Unity, знание психологии восприятия.— Изучать геймдизайн-документы (GDD) на itch.io. — Делать «дизайн-разборы» любимых игр.
Программист игровой физикиПишет код для полёта пуль, отскоков, гравитации, коллизий.Математика (векторы, тригонометрия), C++/C#, движки (Unity, Unreal).— Начать с PyGame или Godot на Python. — Писать симуляторы: «как летит мяч при ветре».
Технический дизайнер (technical designer)Совмещает код и дизайн: делает скрипты поведения врагов, паттерны выстрелов.Blueprints (Unreal), C# (Unity), логика, state machines.— В Unity: писать поведение врага через ScriptableObject. — В Unreal: создавать поведение через Behavior Tree.
Звукорежиссёр игрСоздаёт звук выстрела так, чтобы он соответствовал оружию: пистолет — короткий щелчок, дробовик — гулкий «бум».Аудиоредакторы (Reaper, Wwise), знание акустики, психологии звука.— Анализировать звуки в DOOM Eternal: как меняется тембр при отдаче.
Технический писатель по балансуПишет документы: «как изменить урон, чтобы AK-47 не была сильнее снайперки на ближней дистанции».Статистика, Excel/Python, понимание PvP-экономики.— Собрать данные по 10 оружию в Counter-Strike. — Построить графики «урон vs дистанция».

🔍 Пример карьерного пути:
Ученик → делает мини-шутер в Scratch → учит Python и PyGame → делает игру с физикой → поступает в вуз на «Программная инженерия» → стажируется в студии → становится техдизайнером.


Стрелялка как система знаний


См. также

Другие статьи этого же раздела в боковом меню (как на странице «О разделе»).